package cn.fl.risk.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.risk.dto.RskCstSignLogDTO;
import cn.fl.risk.vo.RskCstSignLogVO;

import java.util.ArrayList;
import java.util.List;

/**
* @Description: 客户风险标记记录表 转换器
* VO是客户端传递数据到服务端进行转换的数据
* VO转换数据变成DTO传递到服务端
* VO不能在服务端出现
*/
public class RskCstSignLogVOTransform {


   /**
    * DTO 转  VO
    * @param dto RskCstSignLogDTO
    * @return RskCstSignLogVO
    */
   public static RskCstSignLogVO toVO(RskCstSignLogDTO dto) {
       RskCstSignLogVO vo = null;
       if (dto != null) {
           vo = new RskCstSignLogVO();
           vo.setId(dto.getId());
           vo.setCstId(dto.getCstId());//客户ID
           vo.setCstNm(dto.getCstNm());//客户名称
           vo.setPrjId(dto.getPrjId());//项目ID
           vo.setLsCntNo(dto.getLsCntNo());//合同号
           vo.setSignResCd(dto.getSignResCd());//标记原因 1.顶名购买 2.团单拆单 3.老赖 4.诈骗 5.法律纠纷 6.他人运营 7.私下转账 8.代收代付
           vo.setSignRem(dto.getSignRem());//备注
           vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
           vo.setCrtUsrNm(dto.getCrtUsrNm());//创建者名称
           vo.setMdfUsrNm(dto.getMdfUsrNm());//修改者名称
           vo.setSignResType(dto.getSignResType());//标记类型
           vo.setSignResTypeNm(dto.getSignResTypeNm());//标记类型名称
           vo.setCstIdcard(dto.getCstIdcard());//身份证号码或者社会统一信用代码
           vo.setSignSource(dto.getSignSource());//风险来源(RSK0031)"CST":客户  "SPL":供应商  "LNK":挂靠公司
           vo.setSignSourceNm(dto.getSignSourceNm());//风险来源(RSK0031)"CST":客户  "SPL":供应商  "LNK":挂靠公司
           vo.setCstTypeCd(dto.getCstTypeCd());//客户类型(RSK0032)1.客户 2.供应商 3.挂靠公司 4.法人代表 5.股东 6.配偶 7.担保人
           vo.setCstTypeCdNm(dto.getCstTypeCdNm());//客户类型(RSK0032)1.客户 2.供应商 3.挂靠公司 4.法人代表 5.股东 6.配偶 7.担保人
           vo.setIsNew(dto.getIsNew());//记录状态(0：旧数据，1：新数据)
           vo.setIsValid(dto.getIsValid());//是否有效(0:否，1:是)
           vo.setRenewId(dto.getRenewId());//关联ID
           
           vo.setCrtTm(dto.getCrtTm());//创建时间
           vo.setCrtUsrId(dto.getCrtUsrId());//创建人
           vo.setMdfTm(dto.getMdfTm());//修改时间
           vo.setMdfUsrId(dto.getMdfUsrId());//修改人
       }
       return vo;
   }

   /**
    * VO 转 DTO
    * @param vo RskCstSignLogVO
    * @return RskCstSignLogDTO
    */
   public static RskCstSignLogDTO toDTO(RskCstSignLogVO vo) {
       RskCstSignLogDTO dto = null;
       if (vo != null) {
           dto = new RskCstSignLogDTO();
           dto.setId(vo.getId());
           dto.setCstId(vo.getCstId());//客户ID
           dto.setCstNm(vo.getCstNm());//客户名称
           dto.setPrjId(vo.getPrjId());//项目ID
           dto.setLsCntNo(vo.getLsCntNo());//合同号
           dto.setSignResCd(vo.getSignResCd());//标记原因 1.顶名购买 2.团单拆单 3.老赖 4.诈骗 5.法律纠纷 6.他人运营 7.私下转账 8.代收代付
           dto.setSignRem(vo.getSignRem());//备注
           dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
           dto.setCrtUsrNm(vo.getCrtUsrNm());//创建者名称
           dto.setMdfUsrNm(vo.getMdfUsrNm());//修改者名称
           dto.setSignResType(vo.getSignResType());//标记类型
           dto.setSignResTypeNm(vo.getSignResTypeNm());//标记类型名称
           dto.setCstIdcard(vo.getCstIdcard());//身份证号码或者社会统一信用代码
           dto.setSignSource(vo.getSignSource());//风险来源(RSK0031)"CST":客户  "SPL":供应商  "LNK":挂靠公司
           dto.setSignSourceNm(vo.getSignSourceNm());//风险来源(RSK0031)"CST":客户  "SPL":供应商  "LNK":挂靠公司
           dto.setCstTypeCd(vo.getCstTypeCd());//客户类型(RSK0032)1.客户 2.供应商 3.挂靠公司 4.法人代表 5.股东 6.配偶 7.担保人
           dto.setCstTypeCdNm(vo.getCstTypeCdNm());//客户类型(RSK0032)1.客户 2.供应商 3.挂靠公司 4.法人代表 5.股东 6.配偶 7.担保人
           dto.setIsNew(vo.getIsNew());//记录状态(0：旧数据，1：新数据)
           dto.setIsValid(vo.getIsValid());//是否有效(0:否，1:是)
           dto.setRenewId(vo.getRenewId());//关联ID

           dto.setCrtTm(vo.getCrtTm());//创建时间
           dto.setCrtUsrId(vo.getCrtUsrId());//创建人
           dto.setMdfTm(vo.getMdfTm());//修改时间
           dto.setMdfUsrId(vo.getMdfUsrId());//修改人
       }
       return dto;
   }

   /**
    * DTO集合 转 VO集合
    * @param list List<RskCstSignLog>
    * @return List<RskCstSignLogDTO>
    */
   public static List<RskCstSignLogVO> toVOList(List<RskCstSignLogDTO> list) {
       List<RskCstSignLogVO>  voList = new ArrayList<RskCstSignLogVO>();
       if(CollectionUtils.isNotEmpty(list)){
           for (RskCstSignLogDTO dto : list) {
               voList.add(toVO(dto));
           }
       }
       return voList;
   }

   /**
    *  VO集合 转 DTO集合
    * @param list List<RskCstSignLogVO>
    * @return List<RskCstSignLogDTO>
    */
   public static List<RskCstSignLogDTO> toDTOList(List<RskCstSignLogVO> list) {
       List<RskCstSignLogDTO>  dtoList = new ArrayList<>();
       if(CollectionUtils.isNotEmpty(list)){
           for (RskCstSignLogVO vo : list) {
               dtoList.add(toDTO(vo));
           }
       }
       return dtoList;
   }
}
